import netty.client.MsgQueue;
import netty.client.NettyClient;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * @auth
 **/
public class Chat extends JFrame {
    public Chat(){
        //创建Frame窗口
        JFrame frame=new JFrame("聊天界面");
        //创建一个JPanel对象
        JPanel jp=new JPanel();
        JTextField textField = new JTextField(30);
        jp.add(textField);

        //设置文本域中的文本为自动换行
        JTextArea jta=new JTextArea("",7,30);

        jta.setLineWrap(true);
        //设置组件的背景色
        jta.setForeground(Color.BLACK);
        //修改字体样式
        jta.setFont(new Font("楷体",Font.BOLD,16));
        //设置按钮背景色
        jta.setBackground(Color.YELLOW);
        //将文本域放入滚动窗口
        JScrollPane jsp=new JScrollPane(jta);
        //获得文本域的首选大小
        Dimension size=jta.getPreferredSize();
        jsp.setBounds(110,90,size.width,size.height);
        //将JScrollPane添加到JPanel容器中
        jp.add(jsp);
        //将JPanel容器添加到JFrame容器中
        frame.add(jp);
        frame.setBackground(Color.LIGHT_GRAY);
        //设置JFrame容器的大小
        frame.setSize(400,200);
        frame.setVisible(true);

        //添加一个确定按钮
        JButton jb=new JButton("发送");
        //为确定按钮添加监听事件
        jb.addActionListener(new ActionListener(){
            @Override
            public void actionPerformed(ActionEvent arg0) {
                String content = textField.getText();
                NettyClient.channel.writeAndFlush(content);
                textField.setText("");
                Integer i= 1;
                if(i==1){
                    new Thread(()->{
                        writeMsg(jta);
                    }).start();
                }
                i=0;
            }
        });
        //设置确定按钮的宽，高，x值，y值
        jb.setBounds(80, 80, 60, 18);
        //将确定按钮添加到cp容器中
        jp.add(jb);
    }
    private void writeMsg(JTextArea jta){
        while (true){
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            String poll = MsgQueue.MsgQueue.poll();
            if(null != poll){
                if(jta.getLineCount()>100){
                    jta.setText("");
                }
                jta.append(System.currentTimeMillis()+": "+poll+"\r\n");
            }
        }

    }
   /*public static void main(String [] args){
        new Chat();
    }*/
}
